package com.gitee.jmash.storage.service;

import java.util.List;
import java.util.UUID;
import com.gitee.jmash.core.orm.DtoPage;
import com.gitee.jmash.core.orm.DtoTotal;
import com.gitee.jmash.core.orm.tenant.TenantService;
import com.gitee.jmash.storage.entity.StorageOrganInfoEntity;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import jmash.storage.protobuf.StorageOrganInfoReq;

 /**
 *  storage_organ_info服务Read接口.
 *
 * @author <a href="mailto:service@crenjoy.com">crenjoy</a>
 */
public interface StorageOrganInfoRead extends TenantService {

  /** 根据主键查询. */
  public StorageOrganInfoEntity findById(@NotNull UUID entityId);

  /** 查询页信息. */
  public DtoPage<StorageOrganInfoEntity,DtoTotal> findPageByReq(@NotNull @Valid StorageOrganInfoReq req);

  /** 综合查询. */
  public List<StorageOrganInfoEntity> findListByReq(@NotNull @Valid StorageOrganInfoReq req);

  /** 我的组织列表. */
  public List<StorageOrganInfoEntity> findMyStorageOrganList(@NotNull List<String> serviceTypes,@NotNull String unifiedId);

  /** 我的默认组织. */
  public StorageOrganInfoEntity findMyDefaultStorageOrgan(@NotNull List<String> serviceTypes,@NotNull String unifiedId);

  /**
   * 查询服务组织.
   */
  public StorageOrganInfoEntity findOrganService(@NotNull UUID organId,@NotNull String serviceType);

  /** 我的浏览组织列表. */
  public List<StorageOrganInfoEntity> findMyStorageOrganBrowseList(List<String> serviceTypes,
       String unifiedId);
 }
